using System;
using Iesi.Collections.Generic;

namespace METODESA.Server.Data.METODESA.Entity 
{    
	/// <summary>
	/// An object representation of the Producto table
	/// </summary>
	[Serializable]
	public partial class Producto
	{
		private System.Int32 _Id;

		private Nullable<System.Int32> _Cantidad;
		private System.String _Categoria;
	    private ISet<DetalleCompra> _DetalleCompra;
	    private ISet<DetalleVenta> _DetalleVenta;
		private System.String _Nombre;
		private System.Double _Precio;


	    public Producto()
	    {
	    }

	    public Producto(int? _Cantidad, string _Categoria, ISet<DetalleCompra> _DetalleCompra, ISet<DetalleVenta> _DetalleVenta, string _Nombre, double _Precio)
	    {
	        this._Cantidad = _Cantidad;
	        this._Categoria = _Categoria;
	        this._DetalleCompra = _DetalleCompra;
	        this._DetalleVenta = _DetalleVenta;
	        this._Nombre = _Nombre;
	        this._Precio = _Precio;
	    }

	    public virtual Nullable<System.Int32> Cantidad
		{
			get
			{
				return _Cantidad;
			}
			set
			{
				_Cantidad = value;
			}
		}

		public virtual System.String Categoria
		{
			get
			{
				return _Categoria;
			}
			set
			{
				_Categoria = value;
			}
		}

		public virtual ISet<DetalleCompra> detalleCompra
		{
			get
			{
				return _DetalleCompra;
			}
            set
            {
                _DetalleCompra = value;
            }
		}

		public virtual ISet<DetalleVenta> detalleVenta
		{
			get
			{
				return _DetalleVenta;
			}
            set
            {
                _DetalleVenta = value;
            }
		}

		public virtual System.Int32 Id
		{
			get
			{
				return _Id;
			}
			set
			{
				_Id = value;
			}
		}

		public virtual System.String Nombre
		{
			get
			{
				return _Nombre;
			}
			set
			{
				_Nombre = value;
			}
		}

		public virtual System.Double Precio
		{
			get
			{
				return _Precio;
			}
			set
			{
				_Precio = value;
			}
		}


		protected bool Equals(Producto entity)
		{
			if (entity == null) return false;
			if (!base.Equals(entity)) return false;
			if (!Equals(_Id, entity._Id)) return false;
			return true;
		}

		public override bool Equals(object obj)
		{
			if (ReferenceEquals(this, obj)) return true;
			return Equals(obj as Producto);
		}

		public override int GetHashCode()
		{
			int result = base.GetHashCode();
			result = 29*result + _Id.GetHashCode();
			return result;
		}

	}
}
